package com.ruoyi.finance.service;

import com.ruoyi.finance.domain.PaymentVoucher;
import com.ruoyi.finance.domain.PaymentWaterFormUpload;
import com.ruoyi.finance.domain.vo.PaymentMasterVo;
import com.ruoyi.finance.domain.vo.PaymentVoucherLogVo;
import com.ruoyi.finance.domain.vo.PaymentVoucherVo;
import com.ruoyi.procured.domain.ProcuredPlan;

import java.util.List;

public interface IPaymentVoucherService
{

    /**
     * 生成付款单
     */
    void voucherPaymentRequest(List<String> paymentRequestIds, String nickName);
    /**
     * 查询付款单列表
     */
    List<PaymentMasterVo> selectPaymentMasterVotList(PaymentMasterVo paymentMasterVo);
    /**
     * 核准付款单
     */
    void approvedPaymentVoucher(List<String> paymentVoucherIds, String nickName);
    /**
     * 批量核准（单独付款）
     */
    void approvedPaymentVoucherOnly(List<String> paymentVoucherIds, String nickName);
    /**
     * 查询日志
     */
    List<PaymentVoucherLogVo> selectPaymentVoucherLogList(PaymentVoucherLogVo paymentVoucherLog);
    /**
     * 驳回付款单
     */
    void rejectPaymentVoucher(List<String> paymentVoucherIds, String rejectRemark, String nickName);
    /**
     * 上传水单
     */
    int uploadWaterBillImg(PaymentWaterFormUpload paymentVoucher, String nickName);
    /**
     * 撤回采购计划
     * @param procuredPlan
     * @return
     */
    public int revokeProcuredPlan(ProcuredPlan procuredPlan, String nickName, Long userId, String componentPath);
    /**
     * 锁定付款
     */
    void tagLockPaymentVoucher(List<String> paymentVoucherIds, String nickname);
}
